#####判断密码长度
def passwd_judel1(passwd:str,grade):
    if len(passwd)<8:
        advice.append("你的密码长度小于8")
    else:#####长度大于8，加一分
        grade+=1
    return grade
######数字、字母、特殊字符判断
result=[0,0,0,0]
def passwd_judel2(passwd:str):
    for i in passwd:
        #######满足三个及以上条件，就退出
        if sum(result)>=3:
            break
        else:
            #######满足大写字母，就给result[0]赋值1
            if i.isupper():
                result[0]=1
                #满足小写字母，就给result[1]赋值1
            elif i.islower():
                result[1]=1
                # 满足数字，就给result[2]赋值1
            elif i.isdigit():
                result[2]=1
            else:##满足其他符号，就给result[3]赋值1
                result[3]=1
    return result
#####判断字串
def passwd_judel3():
    #给grade1设置全局变量
    global grade1
    grade1=0
    for a in range(len(passwd)):
        if passwd.count(passwd[a:a+3])>=2:#统计passwd里面任意三个连续的字符，如果相同的>=2   ,grade1就不加
            advice.append("你的密码有长度超过或等于3的字串重复")
            break
        else:#否则grade1就加一分
            grade1=1
    return grade1

passwd=input("请输入你的密码：")
grade=2#初始默认2分
advice=[]
grade=passwd_judel1(passwd,grade)#满足长度大于8时，赋值给grade
grade1=passwd_judel3()#满足字串条件时，赋值grade1
if grade1==1:#如果满足子串条件，grade加一分
    grade+=1
result1=passwd_judel2(passwd)
if sum(result1)<3:#统计result1里面有小于三个字符1，就没有完成大小写字母的条件
    info=["你的密码没有由三种及以上字符组成"]
    print(grade,advice+info)
else:
    grade+=1
    print(grade,advice)